﻿//+-------------------------------------------------------------------------------------------------------------------------------------------------------
//
//Description:  Supported View Model Interfaces
//Author: Aravind Ramarathinam (aravr@microsoft.com)
//
//Copyright © Microsoft Corporation
//Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
//You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
//
//THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, 
//INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. 
//See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.
// 
//--------------------------------------------------------------------------------------------------------------------------------------------------------


using System.Collections.ObjectModel;

namespace VmroleAuthor.ViewModels
{
    public interface IProduceValidationResults
    {
        ObservableCollection<CloudServiceModelValidationResult> ValidationResults { get; }
        void UpdateValidationResults();
    }

    public interface IDataWarningInfo
    {
        string GetWarning(string propertyName);
    }

    public interface IRemoveChildItem
    {
        void RemoveChild(TreeViewItemViewModel childItem);
    }

    public interface ICleanupParamsAndPayload
    {
        void Cleanup();
    }

    public interface ICanBeRemovedFromTree : ICleanupParamsAndPayload
    {      
    }

  

    public interface ISaveToDisk
    {
        void SaveToDisk();
    }

    public interface IContainOsVhdTags
    {
        void RemoveTag(string toRemove);
    }


    public interface IJsonOutput
    {
        string PrettyJson { get; }

        string GetRawJson(bool popOnError);

        string GetPrettyJson(bool popOnError);
    }
}


